iT邦幫忙

2024 iThome 鐵人賽

DAY 14
0

ModelGeneration

今天感冒,先不講太多
接下來我們來做Model的自動生成,在ModModelProvider中我們Override兩個function,第一個是generateBlockStateModels,第二個是generateItemModels

@Override
    public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
    }
@Override
    public void generateItemModels(ItemModelGenerator itemModelGenerator) {

    }

我們先來建立BlockState,在幾天之後我們就要講到樓梯、門、按鈕或告示牌這類的非典型方塊,我們可以先為隕鐵方塊建立一個材質池,讓之後的非典型方塊可以一起使用同一個材質。

@Override
    public void generateBlockStateModels(BlockStateModelGenerator blockStateModelGenerator) {
    BlockStateModelGenerator.BlockTexturePool sideritePoll = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.SIDERITE_BLOCK);
    
    blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.KUNLUN_STONE);
    }

BlockStateModelGenerator.BlockTexturePool sideritePoll = blockStateModelGenerator.registerCubeAllModelTexturePool(ModBlocks.SIDERITE_BLOCK);
建立了一個叫sideritePoll的材質池,所以之後的相關方快就可以使用同一個材質。blockStateModelGenerator.registerCubeAllModelTexturePool同時為Siderite_block建立了Model,CubeAllModel是一個簡單的立方體,六個面都使用相同的材質,類似石頭。

blockStateModelGenerator.registerSimpleCubeAll(ModBlocks.KUNLUN_STONE);則是為Kunlun_stone生成了立方體,一樣是六面使用相同材質,與上面不同的是不提供材質池。

至於物品的部分

@Override
    public void generateItemModels(ItemModelGenerator itemModelGenerator) {
        itemModelGenerator.register(Moditems.Colophony, Models.GENERATED);
        itemModelGenerator.register(Moditems.Siderite,Models.GENERATED);
     itemModelGenerator.register(Moditems.Meat_of_the_nine_head_phoenixes,Models.GENERATED);

    }

非常簡單,只需要使用itemModelGenerator.register,帶入你的物品以及Models.GENERATED來表示你想要生成一個2D物品,這樣就搞定了


上一篇
Minecraft Fabric Mod 模組製作 DAY13 Data Generation
下一篇
Minecraft Fabric Mod 模組製作 DAY15 DataGeneration3
系列文
Minecraft JAVA Fabric 模組製作 : 成為真正的創世神28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言